Skip to main content

Basics of GeoData

In this short demo we cover the most basic symbols to work with geographical data


GeoGraphics

The central piece for visualizing the geo data

Download original notebook
GeoGraphics[GeoMarker[Here], GeoRange -> Quantity[0.5, "Miles"]]
(*VB[*)(FrontEndRef["0cdb94a7-2d59-48c5-badb-ad01903248e7"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKGySnJFmaJJrrGqWYWuqaWCSb6iYlpiTpJqYYGFoaGBuZWKSaAwCMihXO"*)(*]VB*)

where our locations is returned by Here

Here
GeoPosition[{48.36`,10.99`}]

Draw a polygon showing Italy

Entity["Country", "Italy"]
(*VB[*)(Entity["Country", "Italy"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnMIB4vkAjLTC13SU3OL0osyS8KZgOKuOaVZJZUBrMDmc75pXklRZXBrEC2Z0liTiUAdDwSUA=="*)(*]VB*)
GeoGraphics[{EdgeForm[Black], Red, Polygon[(*VB[*)(Entity["Country", "Italy"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnMIB4vkAjLTC13SU3OL0osyS8KZgOKuOaVZJZUBrMDmc75pXklRZXBrEC2Z0liTiUAdDwSUA=="*)(*]VB*)]}]
(*VB[*)(FrontEndRef["61a5e9f4-51d8-46df-a254-aa9936f90f11"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKmxkmmqZappnomhqmWOiamKWk6SYamZroJiZaWhqbpVkapBkaAgCDeBV+"*)(*]VB*)

Distances and paths

To find the distance

GeoDistance[(*VB[*)(Entity["Country", "Italy"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnMIB4vkAjLTC13SU3OL0osyS8KZgOKuOaVZJZUBrMDmc75pXklRZXBrEC2Z0liTiUAdDwSUA=="*)(*]VB*), Here]
(*VB[*)(Quantity[154.08931808171772, "Kilometers"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnMIB4vkAjLTC13SU3OL0osyS8K5gCKBJYm5pVkllQWZf6dvvG2U7JDMBdQ1DszJz83tSS1qBgAAyAW5w=="*)(*]VB*)

Find the nearest entity

GeoNearest["Country", Here]
{(*VB[*)(Entity["Country", "Germany"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnMIB4vkAjLTC13SU3OL0osyS8KZgOKuOaVZJZUBrMDmc75pXklRRC2e2pRbmJeJQCZ8BMi"*)(*]VB*)}

Shortest path between two locations on a map

GeoGraphics[GeoPath[{(*VB[*)(Entity["Country", "Italy"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnMIB4vkAjLTC13SU3OL0osyS8KZgOKuOaVZJZUBrMDmc75pXklRZXBrEC2Z0liTiUAdDwSUA=="*)(*]VB*), (*VB[*)(Entity["Country", "Germany"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnMIB4vkAjLTC13SU3OL0osyS8KZgOKuOaVZJZUBrMDmc75pXklRRC2e2pRbmJeJQCZ8BMi"*)(*]VB*)}], 
 Frame -> True]
(*VB[*)(FrontEndRef["c00d8f90-cd5c-4561-94bb-7a80b980a1d6"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKJxsYpFikWRroJqeYJuuamJoZ6lqaJCXpmidaGCRZWhgkGqaYAQCGVBWg"*)(*]VB*)

Using exact coordinates

GeoGraphics[{Red, GeoPath[{{-35, -55}, {70, 100}}]}, GeoRange -> "World", 
 Frame -> True]
(*VB[*)(FrontEndRef["767a1c73-7ddd-4e0c-a84f-201e63857b23"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKm5uZJxommxvrmqekpOiapBok6yZamKTpGhkYppoZW5iaJxkZAwCFWRV0"*)(*]VB*)

Highlight a few nearest cities

GeoListPlot[GeoNearest["City", Here, 10]]
(*VB[*)(FrontEndRef["9ed905ba-1af3-4ec0-8225-9d6dd947687c"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKW6amWBqYJiXqGiamGeuapCYb6FoYGZnqWqaYpaRYmpibWZgnAwCKYxW1"*)(*]VB*)

Elevation maps

GeoPosition[(*VB[*)(Entity["Mountain", "MountEverest"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnMIB4vkAjLTC13SU3OL0osyS8KZgOKuOaVZJZUBnMAmb75pXkliZl5wbwwjoJrWWpRanEJACqbFb4="*)(*]VB*)];
GeoElevationData[%]
(*VB[*)(Quantity[8726., "Meters"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnMIB4vkAjLTC13SU3OL0osyS8K5gCKBJYm5pVkllQWMYAA90GHYDYg7ZtaklpUDABwRBHS"*)(*]VB*)

Get a height map

data = GeoElevationData[(*VB[*)(Entity["Mountain", "MountEverest"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnMIB4vkAjLTC13SU3OL0osyS8KZgOKuOaVZJZUBnMAmb75pXkliZl5wbwwjoJrWWpRanEJACqbFb4="*)(*]VB*), 
  GeoRange -> (*VB[*)(Quantity[4, "Kilometers"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnMIB4vkAjLTC13SU3OL0osyS8K5gCKBJYm5pVkllRmghQHcwEJ78yc/NzUktSiYgBx2RJ0"*)(*]VB*), GeoProjection -> Automatic]
(*VB[*)BoxForm`temporalStorage$239469(*,*)(*"1:eJxdkcmOm0AARJ1NivIVyZxsHInVQ4g0B2PwRnsw4GYbzaGBNmDANjSY5Yfym7FzzKVUVapTvR/BxTx+Go1G5Ntd1CitL5Wd4tb682E0Mhp0rtO6n1cV6t/GlC2/UZPvY+onNRlTT+xvvO3zDLKgU+ZGUh9vSnuQ06m8bU0BcKIJHG7aiJ4mwOJsEy4bMrgIrC0oxUriSQJt0F7xOg1ug6LcDrtZaR8ByzhJpiRL3qkYTS47gcDtth2iUIiNzvYan6n5wzXy4T7Wq2n5fMKXrHf5HWsKqW/XoMgaCND6Cp47VIazQ9WoorKAkpTVYH7iEpV2jNA8C1ZXK+rcoFe9Y7ZkU3gLTl+z9IonJn2qUpY5tQCX8X7no42C/OE1lfTE66bmjlvZUeYoxGTV1i0qTW7UfWgqejiNodGWtWi4B6bwcGNpySZzfVbCfTJzuTWU4TLYRFVuiTzc34ZbGBV6RvZ0O7sGzAJky4V0jX/J0ckntSSvmFdaS7DrdcghccDIAA3CjNdCn07jl5enB4N3W6Ym78ePD36f72I2Oba+PgxGkX7O+3/t/QT83+YB28I5DmsU5Jh8ucclygn+C+hro2I="*)(*]VB*)

Compute the minimum and maximum values in that region:

MinMax[data]
{(*VB[*)(Quantity[5501.720703125, "Meters"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnMIB4vkAjLTC13SU3OL0osyS8K5gCKBJYm5pVkllQWAdkNO2q3OgSzAVm+qSWpRcUAiKwTcA=="*)(*]VB*),(*VB[*)(Quantity[8744.5732421875, "Meters"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnMIB4vkAjLTC13SU3OL0osyS8K5gCKBJYm5pVkllQWAdkJniIHHYLZgCzf1JLUomIAewkShA=="*)(*]VB*)}

Plot it in 3D

ListPlot3D[Reverse[data][[;;;;2]], MeshFunctions -> {#3 &}, Mesh -> 30, 
 ImageSize -> Medium]
(*VB[*)(FrontEndRef["3ca2087e-0cc5-42d3-be16-230b0a6847b5"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKGycnGhlYmKfqGiQnm+qaGKUY6yalGprpGhkbJBkkmlmYmCeZAgCCvRVe"*)(*]VB*)